package JDK8新性质.引用.构造器引用;

public class Test {
    public static void main(String[] args) {
        // 目标: 构造器引用(理解语法)
        // 1. 创建这个接口的匿名内部类

        //(正常创建匿名内部类)
//        CreateCar cc = new CreateCar() {
//            @Override
//            public Car create(String name, double price) {
//                return new Car(name, price);
//            }
//        };

        // 使用Lambda表达式
//        CreateCar cc = (name, price) -> new Car("奔驰",49.9);

        //构造器引用(使用条件: 如果某个Lambda表达式里只是在创建对象, 并且前后参数情况一致,就可以使用构造器引用)
        // 类名::new
        CreateCar cc = Car::new;
        Car c = cc.create("奔驰",49.9);
        System.out.println(c);
    }
}

interface CreateCar {
    Car create(String name, double price);
}